#ifndef _GAME_H_INCLUDED_
#define _GAME_H_INCLUDED_

#include "contentmanager.h"
#include "lightmanager.h"

#include "timer.h"

class GameObjectCollection;

class Game {
public:
    Game();
    virtual ~Game(void);
    ContentManager* GetContentManager() const;
    float GetFPS() const;
    void SetFPS(float val);
    GameObjectCollection* GetGameObjects() const;
    LightManager* GetLightManager() const;
    bool IsRunning() const;
    virtual void Draw(float timeDelta);
    void Run();
    void Stop();
    virtual void Update(float timeDelta);
protected:
    virtual void Initialize();
    virtual void LoadContent();
    virtual void UnloadContent();
private:
    ContentManager* contentManager;
    float fps;
    GameObjectCollection* gameObjects;
    bool isRunning;
    LightManager* lightManager;
};

#endif
